Methods, apparatuses, and computer program products for facilitating synchronization of setting configurations

ABSTRACT

A method, apparatus, and computer program product are provided for facilitating synchronization of setting configurations. An apparatus may include a processor and a memory storing instructions that when executed by the processor cause the apparatus to configure a setting on the apparatus. The instructions when executed by the processor may further cause the apparatus to generate a settings data package comprising the setting configuration. The instructions when executed by the processor may additionally cause the apparatus to send the settings data package to a settings management service for synchronization of the setting configuration to at least one of a service or a user device. The settings management service may be configured to synchronize the setting configuration by distributing the settings data package to the at least one of the service or the user device. Corresponding methods and computer program products are also provided.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.12/463,675 filed on May 11, 2009 entitled “Methods, Apparatuses, andComputer Program Products for Facilitating Synchronization of SettingConfigurations,” which claims priority to an Indian Patent ApplicationNo. 471/DEL/2009 filed Mar. 9, 2009, which is incorporated herein byreference in its entirety.

TECHNOLOGICAL FIELD

Embodiments of the present invention relate generally to communicationtechnology and, more particularly, relate to methods, apparatuses, andcomputer program products for facilitating synchronization of settingconfigurations.

BACKGROUND

The modern communications era has brought about a tremendous expansionof wireline and wireless networks. Computer networks, televisionnetworks, and telephony networks are experiencing an unprecedentedtechnological expansion, fueled by consumer demand. Wireless and mobilenetworking technologies have addressed related consumer demands, whileproviding more flexibility and immediacy of information transfer.

Current and future networking technologies as well as evolved computingdevices making use of networking technologies continue to facilitateease of information transfer and convenience to users. One area in whichthere is a demand to further improve ease of information transfer isfacilitating synchronization of setting configurations across multipleservices accessed by a consumer with a computing device and/or acrossmultiple computing devices used by the consumer.

In this regard, consumers often use their computing device(s) to accessa multitude of services, such as over a network. Each of these servicesmay require or may at least provide the ability for a consumer toconfigure one or more settings for the service, which may control, forexample, how the service is provided to the consumer's computing device.Some of these configuration settings, such as email notificationsettings, may not be unique to a single service, and as such may beapplicable across multiple services. Hence, it would be helpful to theconsumer if there was a way to synchronize common setting configurationsbetween services so that the consumer would only have to configure acommon setting configuration setting once, regardless of how manyservices the consumer uses.

Some consumers may use multiple computing devices to access a service.In this regard, a consumer may, for example, access a service with afirst computer from his office, a second computer from his home, and amobile terminal when in transit. Although each device may have uniquecharacteristics and capabilities, there may be unique service usagesettings or preferences defining how the service is to be provided tothe consumer that the consumer would like to be applied to each of thedevices used to access the service. Hence, it would be helpful to theconsumer if there was a way to synchronize common setting configurationsbetween devices so that the consumer would only have to configure acommon setting configuration setting once, even if the consumer usesmultiple devices to access the service. Unfortunately, with existingtechnologies, the consumer may be required to configure the appropriatesettings on each device that he uses to access the service.

Accordingly, it would be advantageous to provide methods, apparatuses,and computer program products for facilitating synchronization ofsetting configurations.

BRIEF SUMMARY OF SOME EXAMPLES OF THE INVENTION

A method, apparatus, and computer program product are therefore providedfor facilitating synchronization of setting configurations. In thisregard, a method, apparatus, and computer program product are providedthat may provide several advantages to computing devices, computingdevice users, and service providers. As such, then, some embodiments ofthe invention provide several advantages to computing devices, computingdevice users, and service providers. The synchronization performed byembodiments of the invention streamlines usage of services and/or accessto data by users having multiple user devices used to access servicesand/or data. Further, embodiments of the invention enablesynchronization of setting configurations between multiple services sothat a user only has to configure a setting for one service and thesetting is then synchronized to other services. Embodiments of theinvention further provide for backup of setting configurations, assetting configurations for a first user device can be synchronized toanother user device of the user or back to the first user device, suchas if the memory of the first user device is corrupted.

In a first exemplary embodiment, a method is provided, which may includeconfiguring a setting on a first user device. The method may furtherinclude generating, with a settings management unit embodied on thefirst user device, a settings data package comprising the settingconfiguration. The method may additionally include sending the settingsdata package to a settings management service for synchronization of thesetting configuration to at least one of a service or a second userdevice. The settings management service may be configured to synchronizethe setting configuration by distributing the settings data package tothe at least one of a service or a second user device.

In another exemplary embodiment, a method is provided, which may includereceiving, at a settings management service, a settings data packagegenerated by a first user device. The settings data package may comprisea setting configuration. The method may additionally includesynchronizing the setting configuration to at least one of a service ora second user device by distributing the settings data package to the atleast one of a service or a second user device.

In another exemplary embodiment, an apparatus is provided, which mayinclude a processor and a memory storing instructions that when executedby the processor cause the apparatus to configure a setting on theapparatus. The instructions when executed by the processor may furthercause the apparatus to generate a settings data package comprising thesetting configuration. The instructions when executed by the processormay additionally cause the apparatus to send the settings data packageto a settings management service for synchronization of the settingconfiguration to at least one of a service or a remote user device. Thesettings management service may be configured to synchronize the settingconfiguration by distributing the settings data package to the at leastone of a service or a remote user device.

In another exemplary embodiment, an apparatus is provided, which mayinclude a processor and a memory storing instructions that when executedby the processor cause the apparatus to receive a settings data packagegenerated by a first user device. The settings data package may comprisea setting configuration. The instructions when executed by the processormay additionally cause the apparatus to synchronize the settingconfiguration to at least one of a service or a second user device bydistributing the settings data package to the at least one of a serviceor a second user device.

In another exemplary embodiment, a computer program product is provided.The computer program product includes at least one computer-readablestorage medium having computer-readable program instructions storedtherein. The computer-readable program instructions may include aplurality of program instructions. Although in this summary, the programinstructions are ordered, it will be appreciated that this summary isprovided merely for purposes of example and the ordering is merely tofacilitate summarizing the computer program product. The exampleordering in no way limits the implementation of the associated computerprogram instructions. The first program instruction may be configuredfor configuring a setting on a first user device. The second programinstruction may be configured for generating a settings data packagecomprising the setting configuration. The third program instruction maybe configured for causing the settings data package to be sent to asettings management service for synchronization of the settingconfiguration to at least one of a service or a second user device. Thesettings management service may be configured to synchronize the settingconfiguration by distributing the settings data package to the at leastone of a service or a second user device.

In another exemplary embodiment, a computer program product is provided.The computer program product includes at least one computer-readablestorage medium having computer-readable program instructions storedtherein. The computer-readable program instructions may include aplurality of program instructions. Although in this summary, the programinstructions are ordered, it will be appreciated that this summary isprovided merely for purposes of example and the ordering is merely tofacilitate summarizing the computer program product. The exampleordering in no way limits the implementation of the associated computerprogram instructions. The first program instruction may be configuredfor causing a settings data package generated by a first user device tobe received. The settings data package may comprise a settingconfiguration. The second program instruction may be configured forsynchronizing the setting configuration to at least one of a service ora second user device by causing the settings data package to bedistributed to the at least one of a service or a second user device.

The above summary is provided merely for purposes of summarizing someexample embodiments of the invention so as to provide a basicunderstanding of some aspects of the invention. Accordingly, it will beappreciated that the above described example embodiments are merelyexamples and should not be construed to narrow the scope or spirit ofthe invention in any way. It will be appreciated that the scope of theinvention encompasses many potential embodiments, some of which will befurther described below, in addition to those here summarized.

BRIEF DESCRIPTION OF THE DRAWING(S)

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 illustrates a system for facilitating synchronization of settingconfigurations according to an exemplary embodiment of the presentinvention;

FIG. 2 is a schematic block diagram of a mobile terminal according to anexemplary embodiment of the present invention;

FIG. 3 illustrates a block diagram of a system for providing a pluralityof services to computing devices according to an exemplary embodiment ofthe present invention;

FIG. 4 illustrates a diagram of a plurality of services registering witha settings management service according to an exemplary embodiment ofthe invention;

FIG. 5 illustrates an exemplary embodiment of a mirror imagearchitecture facilitating two endpoints to connect for transmission of asettings data package;

FIG. 6 illustrates a series of user interfaces that may be presented toa user when using a settings management service to configure a settingaccording to an exemplary embodiment of the invention;

FIG. 7 illustrates a timing diagram illustrating data that may beexchanged during registration of a service provider to a settingsmanagement service and during user access of a user interface toconfigure service settings according to an exemplary embodiment of theinvention;

FIG. 8 illustrates a user interface that may be presented to a user whenusing a settings management service to select a service and configure asetting for the service according to an exemplary embodiment of theinvention;

FIG. 9 illustrates a user interface that may be presented to a user whenusing a settings management service to configure synchronization and/orbackup settings according to an exemplary embodiment of the invention;

FIG. 10 illustrates an exemplary method for configuring a setting on auser device and synchronizing the setting configuration using a settingsmanagement service according to an exemplary embodiment of the presentinvention;

FIG. 11 illustrates an exemplary method for receiving and implementing asynchronized setting configuration according to an exemplary embodimentof the present invention;

FIG. 12 illustrates an exemplary method for synchronizing a settingconfiguration according to an exemplary embodiment of the presentinvention;

FIG. 13 illustrates an exemplary method for synchronizing a settingconfiguration according to an exemplary embodiment of the presentinvention;

FIG. 14 illustrates an exemplary method for registering a service to thesettings management service according to an exemplary embodiment of thepresent invention; and

FIG. 15 illustrates an exemplary method for synchronizing aconfiguration setting for a service according to an exemplary embodimentof the invention.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all embodiments of the invention are shown. Indeed, theinvention may be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein; rather, theseembodiments are provided so that this disclosure will satisfy applicablelegal requirements. Like reference numerals refer to like elementsthroughout.

Embodiments of a System for Facilitating Synchronization of SettingConfigurations

FIG. 1 illustrates a block diagram of a system 100 for facilitatingsynchronization of setting configurations according to an exemplaryembodiment of the present invention. As used herein, “exemplary” merelymeans an example and as such represents one example embodiment for theinvention and should not be construed to narrow the scope or spirit ofthe invention in any way. It will be appreciated that the scope of theinvention encompasses many potential embodiments in addition to thoseillustrated and described herein. As such, while FIG. 1 illustrates oneexample of a configuration of a system for facilitating synchronizationof setting configurations, numerous other configurations may also beused to implement embodiments of the present invention.

“Settings” may comprise, for example, account settings, marketingsettings (e.g., advertisement preferences), privacy settings, devicesettings, backup settings, restore settings, setting configurationsynchronization settings, and/or the like. Settings may be generic andmay be applied across multiple services and/or user devices. Examplegeneric settings that may be applied across multiple services and/ordevices may comprise marketing consent settings or account useridentification settings. Settings may additionally or alternatively bespecific, applying only to a specific service and/or user device.Accordingly, a “setting configuration” may comprise a configured setting(e.g., email address=John_Doe@isp.com, marketing preference=automobileadvertisements, and/or the like).

A “service” may comprise, for example, provision of data or othercontent (e.g., web pages, multimedia streaming services, and/or thelike), a financial service (e.g., online banking), e-mail, instantmessaging, online gaming (e.g., multi-player gaming), peer-to-peer filetransfer, web browsing, social networking, photograph hosting, videohosting, music hosting, settings management, and/or similar servicesthat may be accessed by and/or supplied to remote computing devices overa network or communications link. An entity and/or computing device(s)providing a service may comprise a “service provider.”

In at least some embodiments, the system 100 includes a settingsmanagement service 102, one or more user devices 104, and one or moreservice providers (e.g., service provider X 106 and service provider Y108) configured to communicate over the network 110. The settingsmanagement service 102 may be embodied as any computing device orplurality of computing devices configured to provide settings managementservices as described herein to a user device 104 and/or a serviceprovider over the network 110. The network 110 may be embodied as anywireless network (e.g., a cellular network), wireline network, orcombination thereof. In at least some embodiments, the network 110comprises or is otherwise embodied as the Internet. A user device 104may be embodied as a desktop computer, laptop computer, mobile terminal,mobile computer, mobile phone, mobile communication device, game device,digital camera/camcorder, audio/video player, television device, radioreceiver, digital video recorder, positioning device, any combinationthereof, and/or the like that is configured to communicate with otherdevices of the system 100 over the network 110 (e.g., to access servicesprovided by a service provider). In an exemplary embodiment, a userdevice 104 is embodied as a mobile terminal, such as that illustrated inFIG. 2.

In this regard, FIG. 2 illustrates a block diagram of a mobile terminal10 representative of one embodiment of a user device 102 in accordancewith embodiments of the present invention. It should be understood,however, that the mobile terminal 10 illustrated and hereinafterdescribed is merely illustrative of one type of user device 102 that mayimplement and/or benefit from embodiments of the present invention and,therefore, should not be taken to limit the scope of the presentinvention. While several embodiments of the electronic device areillustrated and will be hereinafter described for purposes of example,other types of electronic devices, such as mobile telephones, mobilecomputers, portable digital assistants (PDAs), pagers, laptop computers,desktop computers, gaming devices, televisions, and other types ofelectronic systems, may employ embodiments of the present invention.

As shown, the mobile terminal 10 may include an antenna 12 (or multipleantennas 12) in communication with a transmitter 14 and a receiver 16.The mobile terminal may also include a controller 20 or otherprocessor(s) that provides signals to and receives signals from thetransmitter and receiver, respectively. These signals may includesignaling information in accordance with an air interface standard of anapplicable cellular system, and/or any number of different wireline orwireless networking techniques, comprising but not limited toWireless-Fidelity (Wi-Fi), wireless local access network (WLAN)techniques such as Institute of Electrical and Electronics Engineers(IEEE) 802.11, and/or the like. In addition, these signals may includespeech data, user generated data, user requested data, and/or the like.In this regard, the mobile terminal may be capable of operating with oneor more air interface standards, communication protocols, modulationtypes, access types, and/or the like. More particularly, the mobileterminal may be capable of operating in accordance with various firstgeneration (1G), second generation (2G), 2.5G, third-generation (3G)communication protocols, fourth-generation (4G) communication protocols,and/or the like. For example, the mobile terminal may be capable ofoperating in accordance with 2G wireless communication protocols IS-136(Time Division Multiple Access (TDMA)), Global System for Mobilecommunications (GSM), IS-95 (Code Division Multiple Access (CDMA)),and/or the like. Also, for example, the mobile terminal may be capableof operating in accordance with 2.5G wireless communication protocolsGeneral Packet Radio Service (GPRS), Enhanced Data GSM Environment(EDGE), and/or the like. Further, for example, the mobile terminal maybe capable of operating in accordance with 3G wireless communicationprotocols such as Universal Mobile Telecommunications System (UMTS),Code Division Multiple Access 2000 (CDMA2000), Wideband Code DivisionMultiple Access (WCDMA), Time Division-Synchronous Code DivisionMultiple Access (TD-SCDMA), and/or the like. The mobile terminal may beadditionally capable of operating in accordance with 3.9G wirelesscommunication protocols such as Long Term Evolution (LTE) or EvolvedUniversal Terrestrial Radio Access Network (E-UTRAN) and/or the like.Additionally, for example, the mobile terminal may be capable ofoperating in accordance with fourth-generation (4G) wirelesscommunication protocols and/or the like as well as similar wirelesscommunication protocols that may be developed in the future.

Some Narrow-band Advanced Mobile Phone System (NAMPS), as well as TotalAccess Communication System (TACS), mobile terminals may also benefitfrom embodiments of this invention, as should dual or higher mode phones(e.g., digital/analog or TDMA/CDMA/analog phones). Additionally, themobile terminal 10 may be capable of operating according to WirelessFidelity (Wi-Fi) or WiMAX protocols.

It is understood that the controller 20 may comprise circuitry forimplementing audio/video and logic functions of the mobile terminal 10.For example, the controller 20 may comprise a digital signal processordevice, a microprocessor device, an analog-to-digital converter, adigital-to-analog converter, and/or the like. Control and signalprocessing functions of the mobile terminal may be allocated betweenthese devices according to their respective capabilities. The controllermay additionally comprise an internal voice coder (VC) 20 a, an internaldata modem (DM) 20 b, and/or the like. Further, the controller maycomprise functionality to operate one or more software programs, whichmay be stored in memory. For example, the controller 20 may be capableof operating a connectivity program, such as a web browser. Theconnectivity program may allow the mobile terminal 10 to transmit andreceive web content, such as location-based content, according to aprotocol, such as Wireless Application Protocol (WAP), hypertexttransfer protocol (HTTP), and/or the like. The mobile terminal 10 may becapable of using a Transmission Control Protocol/Internet Protocol(TCP/IP) to transmit and receive web content across the internet orother networks.

The mobile terminal 10 may also comprise a user interface including, forexample, an earphone or speaker 24, a ringer 22, a microphone 26, adisplay 28, a user input interface, and/or the like, which may beoperationally coupled to the controller 20. Although not shown, themobile terminal may comprise a battery for powering various circuitsrelated to the mobile terminal, for example, a circuit to providemechanical vibration as a detectable output. The user input interfacemay comprise devices allowing the mobile terminal to receive data, suchas a keypad 30, a touch display (not shown), a joystick (not shown),and/or other input device. In embodiments including a keypad, the keypadmay comprise numeric (0-9) and related keys (#, *), and/or other keysfor operating the mobile terminal.

As shown in FIG. 2, the mobile terminal 10 may also include one or moremeans for sharing and/or obtaining data. For example, the mobileterminal may comprise a short-range radio frequency (RF) transceiverand/or interrogator 64 so data may be shared with and/or obtained fromelectronic devices in accordance with RF techniques. The mobile terminalmay comprise other short-range transceivers, such as, for example, aninfrared (IR) transceiver 66, a Bluetooth™ (BT) transceiver 68 operatingusing Bluetooth™ brand wireless technology developed by the Bluetooth™Special Interest Group, a wireless universal serial bus (USB)transceiver 70 and/or the like. The Bluetooth™ transceiver 68 may becapable of operating according to ultra-low power Bluetooth™ technology(e.g., Wibree™) radio standards. In this regard, the mobile terminal 10and, in particular, the short-range transceiver may be capable oftransmitting data to and/or receiving data from electronic deviceswithin a proximity of the mobile terminal, such as within 10 meters, forexample. Although not shown, the mobile terminal may be capable oftransmitting and/or receiving data from electronic devices according tovarious wireless networking techniques, including Wireless Fidelity(Wi-Fi), WLAN techniques such as IEEE 802.11 techniques, and/or thelike.

The mobile terminal 10 may comprise memory, such as a subscriberidentity module (SIM) 38, a removable user identity module (R-UIM),and/or the like, which may store information elements related to amobile subscriber. In addition to the SIM, the mobile terminal maycomprise other removable and/or fixed memory. The mobile terminal 10 mayinclude volatile memory 40 and/or non-volatile memory 42. For example,volatile memory 40 may include Random Access Memory (RAM) includingdynamic and/or static RAM, on-chip or off-chip cache memory, and/or thelike. Non-volatile memory 42, which may be embedded and/or removable,may include, for example, read-only memory, flash memory, magneticstorage devices (e.g., hard disks, floppy disk drives, magnetic tape,etc.), optical disc drives and/or media, non-volatile random accessmemory (NVRAM), and/or the like. Like volatile memory 40 non-volatilememory 42 may include a cache area for temporary storage of data. Thememories may store one or more software programs, instructions, piecesof information, data, and/or the like which may be used by the mobileterminal for performing functions of the mobile terminal. For example,the memories may comprise an identifier, such as an international mobileequipment identification (IMEI) code, capable of uniquely identifyingthe mobile terminal 10.

Returning to FIG. 1, in an exemplary embodiment, the settings managementservice 102 includes various means, such as a processor 112, memory 114,communication interface 116, and settings control panel unit 118, andsynchronization server 120 for performing the various functions hereindescribed. These means of the settings management service 102 asdescribed herein may be embodied as, for example, hardware elements(e.g., a suitably programmed processor, combinational logic circuit,and/or the like), a computer program product comprisingcomputer-readable program instructions (e.g., software or firmware)stored on a computer-readable medium (e.g. memory 114) that isexecutable by a suitably configured processing device (e.g., theprocessor 112), or some combination thereof. These means may be embodiedon a single computing device or may be distributed or otherwisedispersed among a plurality of computing devices. For example, thesynchronization server 120 may comprise a first computing device remotefrom a second computing device comprising other means of the settingsmanagement service (e.g., the settings control panel unit 118) and maycommunicate with the second computing device over the network 110.

The processor 112 may, for example, be embodied as various meansincluding one or more microprocessors with accompanying digital signalprocessor(s), one or more processor(s) without an accompanying digitalsignal processor, one or more coprocessors, one or more controllers,processing circuitry, one or more computers, various other processingelements including integrated circuits such as, for example, an ASIC(application specific integrated circuit) or FPGA (field programmablegate array), or some combination thereof. In an exemplary embodiment,the processor 112 is configured to execute instructions stored in thememory 114 or otherwise accessible to the processor 110. Althoughillustrated in FIG. 1 as a single processor, in some embodiments theprocessor 112 comprises a plurality of processors. The plurality ofprocessors may be embodied on a single computing device or may bedistributed across a plurality of computing devices, which may be inoperative communication with each other, such as over the network 110,to collectively perform one or more functionalities of the settingsmanagement service 102 as described herein.

The memory 114 may include, for example, volatile and/or non-volatilememory. Although illustrated in FIG. 1 as a single memory, the memory114 may comprise a plurality of memories, which may include volatilememory, non-volatile memory, or some combination thereof. In thisregard, the memory 114 may comprise, for example, a hard disk, randomaccess memory, cache memory, flash memory, a compact disc read onlymemory (CD-ROM), digital versatile disc read only memory (DVD-ROM), anoptical disc, circuitry configured to store information, or somecombination thereof. The memory 114 may be configured to storeinformation, data, applications, instructions, or the like for enablingthe settings management service 102 to carry out various functions inaccordance with exemplary embodiments of the present invention. Forexample, in at least some embodiments, the memory 114 is configured tobuffer input data for processing by the processor 112. Additionally oralternatively, in at least some embodiments, the memory 114 isconfigured to store program instructions for execution by the processor112. The memory 114 may comprise one or more databases that storeinformation in the form of static and/or dynamic information. The storedinformation may include setting configurations (e.g., for a user, a userdevice 104, a service, and/or the like), settings data packages, userinterface widgets, and/or the like. This stored information may bestored and/or used by settings control panel unit 118 and/orsynchronization server 120 during the course of performing theirfunctionalities.

The communication interface 116 may be embodied as any device or meansembodied in hardware, a computer program product comprising computerreadable program instructions stored on a computer readable medium(e.g., the memory 114) and executed by a processing device (e.g., theprocessor 112), or a combination thereof that is configured to receiveand/or transmit data from/to a remote device, such as the user device104 and/or a service provider over the network 110. In at least oneembodiment, the communication interface 116 is at least partiallyembodied as or otherwise controlled by the processor 112. Thecommunication interface 116 may include, for example, an antenna, atransmitter, a receiver, a transceiver and/or supporting hardware orsoftware for enabling communications with other entities of the system100. The communication interface 116 may be configured to receive and/ortransmit data using any protocol that may be used for communicationsbetween computing devices of the system 100. In this regard, thecommunication interface 116 may be configured to receive and/or transmitsetting configurations and/or settings data packages from and/or toother devices of the system 100. The communication interface 116 mayadditionally be in communication with the memory 114, settings controlpanel unit 118, and/or synchronization server 120, such as via a bus.

The settings control panel unit 118 may be embodied as various means,such as hardware, a computer program product comprising computerreadable program instructions stored on a computer readable medium(e.g., the memory 114) and executed by a processing device (e.g., theprocessor 112), or some combination thereof and, in one embodiment, isembodied as or otherwise controlled by the processor 112. In embodimentswhere the settings control panel unit 118 is embodied separately fromthe processor 112, the settings control panel unit 118 may be incommunication with the processor 112. The settings control panel unit118 may further be in communication with the memory 114, communicationinterface 116, and/or synchronization server, such as via a bus.

The synchronization server 120 may be embodied as various means, such ashardware, a computer program product comprising computer readableprogram instructions stored on a computer readable medium (e.g., thememory 114) and executed by a processing device (e.g., the processor112), or some combination thereof and, in one embodiment, is embodied asor otherwise controlled by the processor 112. In some embodiments, thesynchronization server 120 may comprise a stand-alone computingdevice(s) that may be in communication with other elements of thesettings management service 102, user devices 104, and/or serviceproviders over the network 110. The synchronization server 120 may beconfigured to handle communicating setting configurations and/orsettings data packages among computing devices of the system 100 forsynchronization purposes. In at least some embodiments, thesynchronization server 120 may utilize SyncML (also referred to as“synchronization markup language” and Open Mobile Alliance DataSynchronization and Device Management”) to facilitateplatform-independent synchronization of setting configurations betweenuser devices 104 and/or service providers.

Referring now to the user device 104, in an exemplary embodiment, eachuser device 104 includes various means, such as a processor 122, memory124, communication interface 126, user interface 128, and settingsmanagement unit 130 for performing the various functions hereindescribed. These means of the user device 104 as described herein may beembodied as, for example, hardware elements (e.g., a suitably programmedprocessor, combinational logic circuit, and/or the like), a computerprogram product comprising computer-readable program instructions (e.g.,software or firmware) stored on a computer-readable medium (e.g. memory124) that is executable by a suitably configured processing device(e.g., the processor 122), or some combination thereof.

The processor 122 may, for example, be embodied as various means one ormore microprocessors with accompanying digital signal processor(s), oneor more processor(s) without an accompanying digital signal processor,one or more coprocessors, one or more controllers, processing circuitry,one or more computers, various other processing elements includingintegrated circuits such as, for example, an ASIC (application specificintegrated circuit) or FPGA (field programmable gate array), or somecombination thereof. In embodiments wherein the user device 104 isembodied as a mobile terminal 10, the processor 122 may be embodied asor otherwise comprise the controller 20. In an exemplary embodiment, theprocessor 122 is configured to execute instructions stored in the memory124 or otherwise accessible to the processor 122. Although illustratedin FIG. 1 as a single processor, in some embodiments the processor 122comprises a plurality of processors, which may operate cooperatively toexecute various functions described herein.

The memory 124 may include, for example, volatile and/or non-volatilememory. Although illustrated in FIG. 1 as a single memory, the memory124 may comprise a plurality of memories, which may include volatilememory, non-volatile memory, or some combination thereof. In thisregard, the memory 124 may comprise, for example, a hard disk, randomaccess memory, cache memory, flash memory, a compact disc read onlymemory (CD-ROM), digital versatile disc read only memory (DVD-ROM), anoptical disc, circuitry configured to store information, or somecombination thereof. The memory 124 may be configured to storeinformation, data, applications, instructions, or the like for enablingthe user device 104 to carry out various functions in accordance withexemplary embodiments of the present invention. For example, in at leastsome embodiments, the memory 124 is configured to buffer input data forprocessing by the processor 122. Additionally or alternatively, in atleast some embodiments, the memory 124 is configured to store programinstructions for execution by the processor 122. The memory 124 maycomprise one or more databases that store information in the form ofstatic and/or dynamic information. The stored information may includesetting configurations and/or settings data packages for the user device102 and/or for one or more services. This stored information may bestored and/or used by the settings management unit 130 during the courseof performing its functionalities.

The communication interface 126 may be embodied as any device or meansembodied in hardware, a computer program product comprising computerreadable program instructions stored on a computer readable medium(e.g., the memory 124) and executed by a processing device (e.g., theprocessor 122), or a combination thereof that is configured to receiveand/or transmit data from/to a remote device, such as the settingsmanagement service 102 and/or a service provider over the network 110.In at least one embodiment, the communication interface 126 is at leastpartially embodied as or otherwise controlled by the processor 122. Thecommunication interface 126 may include, for example, an antenna, atransmitter, a receiver, a transceiver and/or supporting hardware orsoftware for enabling communications with other entities of the system100. The communication interface 126 may be configured to receive and/ortransmit data using any protocol that may be used for communicationsbetween computing devices of the system 100. In this regard, thecommunication interface 126 may be configured to receive and/or transmitsetting configurations and/or settings data packages from and/or toother devices of the system 100. The communication interface 126 mayadditionally be in communication with the memory 124, user interface128, and/or settings management unit 130, such as via a bus.

The user interface 128 may be in communication with the processor 122 toreceive an indication of a user input and/or to provide an audible,visual, mechanical, or other output to the user. As such, the userinterface 128 may include, for example, a keyboard, a mouse, a joystick,a display, a touch screen display, a microphone, a speaker, and/or otherinput/output mechanisms. The user interface 128 may accordingly providemeans for presenting an interface to a user to configure one or moresettings, such as through display of a graphical user interface, such asmay be provided by the settings management service 102 and/or a serviceprovider on a display. The user interface 128 may be in communicationwith the memory 124, communication interface 126, and/or settingsmanagement unit 130, such as via a bus.

The settings management unit 130 may be embodied as various means, suchas hardware, a computer program product comprising computer readableprogram instructions stored on a computer readable medium (e.g., thememory 124) and executed by a processing device (e.g., the processor122), or some combination thereof and, in one embodiment, is embodied asor otherwise controlled by the processor 122. In embodiments where thesettings management unit 130 is embodied separately from the processor122, the settings management unit 130 may be in communication with theprocessor 122. The settings management unit 130 may further be incommunication with the memory 124, communication interface 126, and/oruser interface 128, such as via a bus.

In some embodiments, the system 100 may comprise a portion of a systemfor providing a plurality of services to users of computing devices,such as, for example, a user device 104. Access to the plurality ofservices may be provided and/or controlled by an account managementprovider 302. In this regard, and referring now to FIG. 3, an embodimentof a system 300 for providing a plurality of services, includingsettings configuration synchronization, to computing devices inaccordance with aspects of the present invention is illustrated. Thesystem 300 may include an account management provider 302 in addition tothe elements of the system 100. In this regard, the settings managementservice 102, one or more user devices 104, the plurality of serviceproviders (e.g., service provider X 106 and service provider Y 108), andthe account management provider 302 may be interconnected or mayotherwise communicate with each other via the illustrated network 108.

The account management provider 302 may comprise any computing device orplurality of computing devices configured to (e.g., through speciallyconfigured hardware, such as, an appropriately configured processor,and/or through specially configured software, such as may be executed bya processor) provide a single service sign-on and/or interface to aplurality of services and/or service providers such that a user of acomputing device may access a plurality of services through a singleintegrated account interface provided by the account management provider302. In some embodiments, the account management provider 302 mayfurther provide for common billing for access to or use of a pluralityof services. Accordingly, in an exemplary embodiment, the accountmanagement provider 302 comprises a service provider in that the accountmanagement provider 302 provides a gateway to a plurality of services.An example of the functionality that may be provided by an accountmanagement provider 302 may be found at Nokia's www.ovi.com.Accordingly, a user of a computing device may be able to access settingsmanagement service 102 and/or settings management services provided bythe settings management service 102 through the account managementprovider 302. Users may register computing devices, such as, forexample, a user device 104, with the account management provider 302such that the user may access services from the account managementprovider 302 using a user device 104. These services may be provided bythe settings management service, a service provider, and/or the accountmanagement provider 302.

Accordingly, a user of a user device 104 may register or otherwiseinterface a user device 104 with the account management provider 302.Subsequent to registering a user device 104 with the account managementprovider 302, a user may log into the account management provider 302and access one or more services, configure settings, and/or synchronizesetting configurations as described herein in connection to the system100. The user device 104 may comprise software configured for accessingthe account management provider 302 and/or services provided by serviceproviders, such as may be accessed through the account managementprovider 302. Such hardware and/or software may comprise, for example, aweb browser, a dedicated application (e.g., a service-specificapplication), and/or the like.

Returning to FIG. 1, the settings control panel unit 118 is configuredin at least some embodiments to provide one or more user interfacesfacilitating a user of a user device 104 to configure one or moresettings for a service(s). The construct of a user interface (UI) may beprovided or specified by a service provider. In this regard, thesettings control panel unit 118 may comprise a user interface widgetapplication programming interface (“UI widget API”) that may facilitateservice providers to create user interface widgets (UI widgets) forhandling settings that may be accessed and configured by a user with auser device 104. In this regard, UI widgets specified by serviceproviders may be used by the settings control panel unit 118 to presentsettings to users via the user interface 128 and/or settings managementunit 130 of a user device 104 for configuration. Each UI widget may, forexample, comprise a web UI that may comprise a website or plug-in thatmay be accessible by a user device 104 over the network 110, such aswith a web browser. In some embodiments, the settings control panel unit118 may provide a central UI, such as a web UI, through which one ormore service UI widgets may be accessed by a user of a user device 104.Some service providers may provide multiple service UI widgets for agiven service, each of which may be tailored for a specific use scenario(e.g., dependent upon a location of a user device 104, identity of auser using user device 104 accessing the service UI widget, or othercriteria).

Accordingly, for example, a user of a user device 104 may navigate toand/or otherwise access a central UI provided by the settings controlpanel unit 118, select a service UI widget for a service, and configureone or more settings using the service UI widget. The service providerproviding the service UI widget and/or the settings control panel unit118 may be configured to handle any error and validation checks forsettings configured via the selected service UI widget. When a serviceUI widget is not available for a service requested by a user, thesettings control panel unit 118 may be configured to generate a failureor other error message and send the message to the user device 104 suchthat it may be presented to the user over the user interface 128.

In at least some embodiments, service providers integrating theirservices with the settings management service 102 so as to enablecentralized settings configuration and/or settings synchronizationaccording to embodiments of the present invention may register with thesettings management service 102 and/or with an account managementprovider 302. FIG. 4 illustrates a diagram of a plurality of servicesregistering with the settings management service 102 according to anexemplary embodiment of the invention such that the settings managementservice may implement and/or provide each service's service UI widget.In this regard, the settings control panel unit 118 may be configured toprovide a service registration client 404 that facilitates serviceproviders, such as, for example, the media service provider 410, chatservice provider 412, social networking service provider 414, datastorage service provider 416, and account management provider 302illustrated in FIG. 4 to specify service UI widget information. Serviceproviders may, for example, provide the service registration client 404settings names, settings types, a uniform resource locator (URL) for aservice provided by the service provider, a name of the service, adescription of the service, a service UI widget, a URL for a service UIwidget that the settings control panel unit 118 may access to providethe service UI widget to a user, authentication information for theservice (e.g., authorization and/or login information enabling theservice provider to access and specify the settings information and/orservice UI widget(s) that it has registered to the settings managementservice 102), and/or the like. Once a service provider has registeredwith the settings management service 102, the service registrationclient 404 may be further configured to provide an interface enablingservice providers to update and/or delete settings information and/orservice UI widgets that the service provider previously specified.Additionally, the service registration client 404 may be configured toprovide an interface enabling service providers to unregister from thesettings management service 102.

Once a service provider has registered a service to the serviceregistration client 404 and configured a service UI widget, the serviceUI widget may be accessed by a user of a user device 104 from thecentral UI 402. Referring to the example of FIG. 4, a media serviceprovider 410, chat service provider 412, social networking serviceprovider 414, data storage service provider 416, and account managementprovider 302 have registered with the service registration client 404and configured, respectively, the media service UI widget 420, chatservice UI widget 422, social networking service widget 424, datastorage service widget 426, and account management provider UI widget428. A user of a user device 104 may access one of these service UIwidgets via the central UI 402 and configure one or more settings forthe respective service with which the service UI widget is associated.

The settings control panel unit 118 and/or memory 114 may be configuredto implement a settings widget framework 406 configured to allow aplurality of service UI widgets for various services to be storedcollectively, such as in memory 114. The settings widget framework 406may further be configured to provide for implementation of the pluralityof service UI widgets such that, for example, a user of a user device104 may access a respective service UI widget to configure a setting. Inthis regard, the settings widget framework 406 may provide a plug-inarchitecture facilitating implementation of a plurality of service UIwidgets. The settings control panel unit 118 may additionally beconfigured to implement a service subscription entity 408, which mayinterface with the central UI 402 to provide the appropriate service UIwidget to the central UI 402 when a particular service UI is to berendered. In this regard, the service subscription entity 408 may beconfigured to manage a plurality of service UI widgets for serviceproviders that have registered with the service registration client 404and configured a service UI widget.

Security Policy Enforcement by Some Embodiments of the Invention

In embodiments wherein the system 100 comprises a portion of a systemfor providing a plurality of services to users of computing devices andhaving an account management provider 302, such as illustrated in FIG.3, the settings management service 102 and each service provider mayimplement a security and/or sign-on protocol in accordance with aprotocol specified by the account management provider 302. In thisregard, the account management provider 302 may control or otherwisefacilitate access to the settings management service 102 by both userdevices 104 and service providers. Each service provider and/or user ofa user device 104 may have unique sign-on information so as to accessthe settings management service 102, which may comprise, for example, aconsumer key and consumer secret (e.g., in accordance with OAuthsigning). Thus, a service provider and/or a user device 104 may invokethe settings management service 102 in the role of a consumer ofsettings.

In some embodiments, consumers of the settings management service maypossess an “access token,” which may comprise a tuple with information.Consumers may further possess a “token secret” that is associated withthe access token and/or a “consumer secret” unique to the consumer. Theaccount management provider 302 may store or have access to a copy ofthe access token, token secret, and/or consumer secret to facilitatesign-on and verification of a consumer. The access token may bind anauthenticated user session (e.g., a user session of the accountmanagement provider 302) to a consumer (e.g., a user of a user device104, a user device 104, service provider, or the like) and a service(e.g., the settings management service 102). The consumer may thenpresent the access token to the settings management service 102 when itinvokes the settings management service. The settings control panel unit118 may be configured to dereference the access token and send it to theaccount management provider 302. The account management provider 302 maybe configured to use the access token to retrieve information about theauthenticated user, the associated consumer key, and associated tokensecret and send this information to the settings management service 102.This information may then be used for validation of the consumer by thesettings management service 102, as the access token, itself, is notsecret and on its own should not be considered sufficient for resourceaccess in embodiments wherein a secure access policy is enforced by anaccount management provider 302 or by the settings management service102. Accordingly, when the consumer sends any settings managementservice request message (e.g., to change a configuration setting, set upa service UI widget, and/or the like) to the settings management service102, the consumer may sign the message with the token secret and/or theconsumer secret. The settings control panel unit 118 may then verify theauthenticity of the settings management service request message by usingthe token secret and consumer secret obtained from the accountmanagement provider 302 to authenticate the settings management servicerequest message (e.g., to ensure that the token secret and consumersecret used to sign the message by the consumer are the same as thoseprovided to the settings management service 102 by the accountmanagement provider 302 and known to be authentic).

Synchronization of Setting Configurations

In at least some embodiments, a user of a user device 104 may access asettings configuration user interface, such as a central UI widgetand/or a service UI widget provided by the settings management service102 and/or a service provider. This user interface may be retrieved bythe settings management unit 130 over the network 110 from the settingsmanagement service 102 or may be locally available in the memory 124,such as when the user device 104 is not actively connected to thenetwork 110. The user may then use the user interface 128 to provideinput to the user device 104 to configure one or more settings. Once theuser has completed configuration of a setting(s), the settingsmanagement unit 130 may be configured to generate a settings datapackage comprising a setting configuration newly configured or changedby the user such that notice of the setting configuration may be sent tothe settings management service 102.

In some embodiments, the user may additionally explicitly designate oneor more services and/or one or more other user devices 104 (e.g., otheruser devices 104 owned or used by the user) that the user would like thenewly configured setting configuration(s) to be synchronized to.Additionally or alternatively, such designation may be based on existingaccount settings of the user (e.g., an account with the accountmanagement provider 302 and/or with the settings management service 102)and/or based on a service provider associated with a setting configuredby the user. The settings management unit 130 may accordingly be furtherconfigured to generate the settings data package to comprise anindication of user devices 104 and/or service providers to which thesettings management service 102 is to synchronize the settingconfiguration contained in the settings data package.

In an exemplary embodiment, the settings data package comprises anextensible markup language (XML)-based package. This package maycomprise a plurality of fields that provide routing information toenable the settings management service 102 to synchronize a settingconfiguration contained in the settings data package to another userdevice 104 and/or to a service provider. One such field may comprise a“globally unique identification” (GUID) field, which may comprise aunique identity to identify a setting corresponding to the settingconfiguration contained in the settings data package. In this regard,the settings management service 102 may assign a unique identity to eachsetting that may be configured through the settings management service.Another field may comprise a “Device” field, which may comprise a uniqueidentification of a user device 104 to which a settings data package isto be sent for synchronization by the settings management service. Thesettings control panel unit 118 and/or synchronization server 120 mayutilize the device field for routing purposes. The settings data packagemay additionally or alternatively comprise an “address” field, which maycomprise a unique identifier identifying a service provider to which asettings data package is to be sent for synchronization by the settingsmanagement service. The settings control panel unit 118 and/orsynchronization server 120 may accordingly utilize the address field forrouting purposes. The settings data package may also comprise a fieldthat facilitates a service provider's handling of a settingconfiguration included in the settings data package. For example, thisfield may identify a specific service provided by the service provider(this identity may be unique for each service and may be agreed uponbetween the settings management service 102 and service providerproviding the service), a version of the service (if applicable), and anidentity of a user to which the setting configuration is to be appliedas known to the service. The settings data package may further comprisea “last modified” field, which may comprise a time stamp indicating whenthe setting configuration in the setting data package was configured,which can be used by the settings management service 102, a user device104, and/or a service provider to aid in synchronization of settingconfigurations. In this regard, if an entity of the system 100 has alocally stored setting configuration more recent that that contained ina received settings data package, the locally stored settingconfiguration should not be replaced with the older settingconfiguration included in the settings data package.

An example settings data package may be formatted in XML as follows:

<setting> <guid>435235</guid> <device>Nokia N95</device><address>1.0/Phone-settings/daniel</address><lastmodified></lastmodified> <settingdata> phone-theme=my_theme</settingdata> </setting>

Once the settings management unit 130 has generated a settings datapackage, it may be at least temporarily stored in the memory 124 priorto the settings management unit 130 sending the settings data package tothe settings management service 102. The settings management unit 130may be configured to send the settings data package automaticallyfollowing generation and/or in response to a request of a user of theuser device 104. The settings management unit 130 may additionally oralternatively be configured to send the settings data package to thesettings management service 102 at a scheduled synchronization time,which may comprise a time at which any settings data packages generatedby the settings management unit 130 and stored in the memory 124 thathave not previously been sent to the settings management service 102 aresent to and/or retrieved by the settings management service.Additionally or alternatively, the settings management unit 130 may beconfigured to receive a request from the settings management service 102(e.g., from the settings control panel unit 118 and/or synchronizationserver 120) to send any previously unsent settings data packages to thesettings management service 102 for synchronization and to send unsentsettings data packages in response to the request. In some embodiments,the settings management unit 130 may be configured to detect if anactive network connection between the user device 104 and the network110 is available and send an unsent settings data packet when aconnection is available. An available connection may comprise acommunications session between the user device 104 and a remote networkdevice (e.g., a phone call with another device, text messaging anotherdevice, a peer-to-peer data transfer session, instant message session,and/or the like).

In some embodiments, the settings management unit 130 may comprise asynchronization client, which may be configured to communicate with thesynchronization server 120 and/or settings control panel unit 118 toenable sending settings data packets to and/or receiving settings datapackets from the settings management service 102. Accordingly, sending asettings data package to the settings management service may comprise asynchronization client sending the settings data package. Thesynchronization client may be configured to send and receive settingsdata packages using SyncML, such as in embodiments wherein thesynchronization server 120 utilizes SyncML.

In at least some embodiments, the settings management unit 130 isconfigured to receive a settings data package (e.g., a settings datapackage generated by the settings control panel unit 118) from thesettings management service 102. Receipt of a settings data package maybe handled by a synchronization client and the settings data package maybe received from the synchronization server 120. The settings datapackage may be formatted in accordance with the format previouslyoutlined and thus may comprise a setting configuration and/or anidentified service(s) with which the setting configuration isassociated. Upon receipt of the settings data package, the settingsmanagement unit 130 may determine the service(s) identified by thesettings data package. The settings management unit 130 may then, ifapplicable, route the settings data package to an appropriate servicehandler entity (e.g., a service-specific application, web browser,settings management service widget, and/or the like) embodied on theuser device 104 that is used to locally access and/or implement theidentified service on the user device 104. The settings management unit130 and/or the service handler entity may then extract the settingconfiguration contained in the settings data package and implement theextracted setting configuration on the user device 104.

The settings management unit 130 may be further configured to store theextracted setting configuration and/or the settings data package in thememory 124 for later referencing and/or implementation by the settingsmanagement unit 130 and/or by the appropriate service handler entity. Inthis regard, the settings data package and/or setting configurationextracted from therein may be stored in a settings management servicesettings store (e.g., in memory 124) in association with the serviceidentified by the settings data package. The service handler entity usedto access the service with which the stored setting configuration isimplemented may then access the setting configuration from the settingsmanagement service settings store when the user of the user device 104accesses the particular service (e.g., to implement the settingconfiguration).

In some embodiments wherein a settings data package received by thesettings management unit 130 comprises a last modified field withtimestamp, the settings management unit 130 may be configured to comparethe timestamp of the settings data package to a timestamp associatedwith a configuration for the setting identified by the GUID that iscurrently implemented on the user device 104 to ensure that the receivedsettings data package comprises a setting configuration more currentthan any existing configuration for the setting prior to implementingthe received setting configuration.

In at least some embodiments, the synchronization server 120 and/or thesettings control panel unit 118 is configured to receive and/or retrievea settings data package from a user device 104. Upon receipt of thesettings data package, the settings control panel unit 118 may beconfigured to extract data from data fields included in the settingsdata package (e.g., from a device field, address field, and/or the like)and use the extracted information to synchronize the settingconfiguration included in the settings data package to a serviceprovider and/or user device 104 identified in the settings data packageby distributing the settings data package to a service provider and/oruser device 104 identified in the settings data package. In order todistribute the settings data package for synchronization, the settingscontrol panel unit 118 may be configured to forward the settings datapackage to the synchronization server 120 for distribution. Thesynchronization server 120 may then utilize routing information providedby the settings control panel unit 118 and/or extract destination datafrom the settings data package itself prior to distributing the settingsdata package to a destination user device 104 and/or destination serviceprovider. Distributing the settings data package to a service providermay comprise sending the settings data package to a server computingdevice providing the service.

In some embodiments wherein a settings data package received by thesettings control panel unit 118 comprises a last modified field withtimestamp, the settings control panel unit 118 may be configured tocompare the timestamp contained by the settings data package to atimestamp associated with a configuration for the setting identified bythe GUID that is currently known and implemented by the settingsmanagement service 102 and/or the associated service provider to ensurethat the received settings data package comprises a settingconfiguration more current than any existing configuration for thesetting prior to synchronizing the received setting configuration bydistributing the settings data package. In this regard, the memory 114or other memory accessible to the settings control panel unit 118 maycomprise a service settings database containing a settings managementservice settings store for the configuration of the setting identifiedby the GUID and the settings control panel may compare the timestamp ofthe settings data package to the timestamp of the stored configurationfor the setting. The stored configuration(s) may each be uniquelyassociated with a particular user and/or user device 104 and thus thesettings control panel unit 118 may be configured to look up theappropriate stored configuration based at least in part upon a userand/or user device 104 identified in the settings data package.

In at least some embodiments, the settings control panel unit 118 isconfigured to provide a user interface (e.g., a central UI and/or aservice UI widget as described above) to facilitate a user of a userdevice 104 to configure one or more settings. Accordingly, the settingscontrol panel unit 118 may be further configured to receive, via theuser interface, an indication of a configuration of a setting made bythe user. The configuration of the setting comprises a settingconfiguration. In response to receipt of the indication of aconfiguration of a setting, the settings control panel unit 118 may beconfigured to generate a settings data package comprising the settingconfiguration. The settings data package generated by the settingscontrol panel unit 118 may be in accordance with the settings datapackage format described above and may comprise any one or more of thedescribed fields. Accordingly, for example, the settings control panelunit 118 may include an address of a service provider with which thesetting is associated, the GUID of the setting, information enabling theservice provider to handle the setting configuration (e.g., an identityof the user and/or user device 104 that configured the setting using theuser interface), a timestamp indicating when the configuration was madeand/or when the settings data package was generated, and/or anidentification of a user device 104 (e.g., another user device 104associated with the user that configured the setting to which the userwants the setting configuration synchronized). The information includedin these fields by the settings control panel unit 118 may be obtainedfrom the user interface used to configure the setting, from furtherinput by the user, and/or from predefined user preferences, such as maybe stored in the memory 114.

The settings control panel unit 118 may then forward the settings datapackage to the synchronization server 120, which may synchronize thesetting configuration to a service provider and/or a user device 104 bydistributing the settings data package to a service provider and/or userdevice 104 (e.g., a service provider and/or user device 104 identifiedby the settings data package). The synchronization server 120 mayutilize SyncML for distribution of settings data packages.

In some embodiments, the settings management service 102 and user device104 may comprise a mirror image architecture that allows two endpoints(e.g., the settings management service 102 and a user device 104) toconnect for transmission of a settings data package between endpointsfor synchronization purposes. The architecture on the user device 104side may be implemented by the settings management unit 130 and memory124. The architecture on the settings management service 102 may beimplemented by the memory 114, settings control panel unit 118, andsynchronization server 120. FIG. 5 illustrates an exemplary embodimentof a mirror image architecture facilitating two endpoints to connect fortransmission of a settings data package.

Referring to FIG. 5, the settings management service-side architecturemay comprise a settings management service framework for plugin UI 502,which may comprise the service registration client 404 and/or central UI402 and which may facilitate the provision of a service UI widget to auser of a user device 104. Setting configurations managed by thesettings management service 102 may be stored in a settings managementservice settings store 508 (e.g., in memory 114). Each settingconfiguration may be stored in association with the service provider(s),user, and/or user device 104 with which the setting configuration isassociated. Additionally or alternatively, a setting configuration maybe stored by and accessed from service provider with which the settingconfiguration is related. In this regard, a service provider may storesettings configurations in a service settings database 512 managed bythe service provider. The settings management service synchronizationinterface module 504 may be configured to receive settings data packagesfrom and/or forward settings data packages to the synchronization server120. The service UI widgets may be stored in a settings managementservice widget store 506 (e.g., in memory 114). Additionally oralternatively, a service UI widget may be stored by and accessed fromthe respective service provider that configured the service UI widget.In this regard, a service provider may store a service UI widget in aservice widgets store 510 managed by the service provider.

On the user device 104 side of the architecture of FIG. 5, the userdevice 104 may comprise a synchronization client 520, which may beimplemented and/or controlled by the settings management unit 130, whichmay receive settings data packages from and/or send settings datapackages to the synchronization server 120. The settings managementservice synchronization interface module 522 may facilitate handling ofreceived settings data packages, such as by saving them in the memory124 and/or forwarding the settings data package to an appropriateservice handler entity (e.g., an appropriate settings management servicewidget 528). The settings management service synchronization interfacemodule 522 may additionally or alternatively facilitate handling ofsettings data packages to be sent by the synchronization client 520,such as by retrieving unsent settings data packages from the memory 124.

Setting configurations may be locally stored at the user device (e.g.,in memory 124) in a settings management service settings store 526.Additionally or alternatively, a setting configuration may be stored byand accessed from the service provider with which the settingconfiguration is related. In this regard, a service provider may storesetting configurations in a service settings database 530 managed by theservice provider. One or more service UI widgets may be stored locallyat the user device (e.g., in memory 124) in a settings managementservice widget store 528. Additionally or alternatively, a service UIwidget may be stored by and accessed from the respective serviceprovider that configured the service UI widget. In this regard, aservice provider may store a service UI widget in a service widgetsstore 532 managed by the service provider.

The settings management unit 130 may further comprise a settingsmanagement service framework for plugin UI 524, which may facilitate auser's access of a user interface (e.g., a central UI and/or service UIwidget) to configure a setting. The settings management serviceframework for plugin UI 524 may work with the settings managementservice framework for plugin UI 502 of the settings management service102 to facilitate providing a user interface for configuring a settingto a user when the user device 104 has an established connection.Additionally or alternatively, the settings management service frameworkfor plugin UI 524 may load a locally stored user interface, such as aservice UI widget 532 from the memory 124, such as when the user device104 is not connected to the network 110. In this regard, a user may, insome embodiments, configure a setting in both online and offline modes.

The settings management unit 130 may maintain a services settingsdatabase 530 (e.g., on memory 124), which may comprise currentlyimplemented setting configuration (e.g., for the user device 104 and/orservices accessed with the user device 104). The settings managementunit 130 may additionally or alternatively maintain a settingsmanagement service settings store 526 in association with each serviceaccessed by the user device 104, which may comprise implemented settingconfigurations for that service. Accordingly, when a service is accessedon the user device 104, the settings management unit 130 may retrievethe appropriate setting configurations for the service.

Configuring Settings for Multiple Services

FIG. 6 illustrates a series of user interfaces that may be presented toa user when using a settings management service to configure a setting.Each of the user interface screens described herein may be presented tothe user by the settings control panel unit 118, by an accountmanagement provider 302, and/or by the settings management unit 130 andmay be viewed by the user via the user interface 128. The user interfacemay comprise an initial main control panel screen (FIG. 6a ) from whichthe user may select a plurality of options. One option may be toconfigure settings (labeled “OVI Settings” in FIG. 6a ). If the userselects the option to configure settings, the user may be presented witha second user interface screen (FIG. 6b ), which may list a plurality ofsetting categories. The user may select any of the displayed categoriesto configure settings falling within that category.

One such category that may be available to the user is a general useraccount category (e.g., “My Account), which may comprise generalsettings applicable to the user's global account with the settingsmanagement service 102 and/or account management provider 302. Thesesettings may be applied to multiple services accessed by the user andmay comprise, for example, user biographic details, privacy, andmarketing settings. FIG. 6c illustrates a user interface for configuringbasic user biographic detail settings, which may comprise, for example,a user name, user online handle, user address, user languagepreferences, user email address, services to which the user hassubscribed (e.g., for synchronization of the setting configurations tothe service), and/or the like. FIG. 6d illustrates an alternative userinterface for configuring basic user biographic detail settings, such asmay be provided to a user of a mobile user device 104 having a smallerdisplay screen than, for instance, a desktop user device 104.

FIG. 6e illustrates a user interface through which a user may configureprivacy settings that may be applicable to multiple services. Forexample, a user's user device 104 may comprise a positioning sensor,such as a Global Positioning System device, which may provide locationinformation to the settings management service 102 and/or an accountmanagement provider 302. Accordingly, the user may configure a settingdefining what individual users and/or service providers may access theuser's current GPS location. One such setting may be “open to all.”Other such privacy settings may include, for example, the availabilityof user profile data, user personal information, user browsing history,user address book, and/or the like. The user interface may further allowthe user to configure preferred marketing and notification settings,which may define what modes of communication (e.g., email, text message,phone call, and/or the like) that a service provider may utilize tocontact and/or to send marketing information to the user. The user mayfurther configure what services may send the user marketing informationand/or what type of marketing information a service(s) may send to theuser. FIG. 6f illustrates an alternative user interface through which auser may configure privacy settings that may be applicable to multipleservices, such as may be provided to a user of a mobile user device 104having a smaller display screen than, for instance, a desktop userdevice 104.

FIG. 7 illustrates a timing diagram illustrating data that may beexchanged during registration of a service provider to a settingsmanagement service and during user access of a user interface toconfigure service settings according to an exemplary embodiment of theinvention. In this regard, operations 700-710 illustrate theregistration of a service provider and implementation of a service UIwidget as previously described. Operation 700 may comprise a serviceprovider sending a registration request to the settings managementservice 102 (e.g., to the service registration client 404). Theregistration request may comprise, for example, settings names, settingstypes, a URL for a service provided by the service provider, a name ofthe service, a description of the service, a service UI widget, a URLfor a service UI widget that the settings control panel unit 118 mayaccess to provide the service UI widget to a user, authenticationinformation for the service (e.g., authorization and/or logininformation enabling the service provider to access and specify thesettings information and/or service UI widget(s) that it has registeredto the settings management service 102), and/or the like. Operation 705may comprise the service registration client 404 validating andprocessing the details of the service UI widget provided by the serviceprovider and/or generating a service UI widget from the informationprovided by the service provider. The service provider may furtherprovide and/or negotiate with the service registration client 404 GUIDfor each setting associated with the service and/or identificationinformation that may be included in a settings data packet (e.g., useridentification information) that may facilitate the service provider toimplement a setting configuration distributed to the service provider ina settings data packet. Operation 710 may comprise storing the newservice UI widget and/or registration information for the serviceprovider to the service subscription entity 408 (e.g., in memory 114),which may comprise a service UI widget and/or other service informationfor each service registered to the settings management service.

Once a service provider has registered a service to the serviceregistration client 404 and configured a service UI widget, the serviceUI widget may be accessed by a user of a user device 104 from thecentral UI 402. For example, operation 715 may comprise a user of a userdevice 104 navigating to the central UI provided by the settingsmanagement service (e.g., settings.ovi.com). Operation 720 may, in someembodiments, optionally comprise the settings control panel unit 118authenticating the user by retrieving authentication information fromthe account management provider as previously described. Operation 725may comprise the settings control panel unit 118 providing the centralUI to the user's user device 104 such that it is displayable on adisplay of the user interface 128. Operation 730 may comprise the userselecting a service specific settings page (e.g., for a registeredservice) from the central UI.

Operations 735 and 740 may comprise the settings control panel unit 118retrieving the service UI widget for the selected service. In thisregard, the settings control panel unit 118 may retrieve the actualservice UI widget from the service subscription entity 408 or mayretrieve a URL for the service UI widget. Operation 745 may comprise thesettings control panel unit 118 providing the service UI widget or theservice UI widget URL to the central UI 402 such that it may be providedto the user. If the settings control panel unit 118 provides the URL forthe service UI widget, Operation 750 may comprise the settings controlpanel unit 118 navigating the central UI to the URL so that the serviceUI widget may be loaded. In some embodiments, operation 755 mayoptionally comprise the service provider authenticating the service UIwidget request to the account management provider 302 (e.g., toauthenticate settings management service 102 and/or to authenticate theuser to whom the service UI widget will be provided). The serviceprovider may then return the service UI widget, at operation 760.

Operation 765 may comprise the settings control panel unit 118 loadingthe service UI widget into the central UI 402 so as to provide theservice UI widget to the user device 104 such that it is displayable bythe user device 104 and the user may configure one or more settingsusing the service UI widget.

Configuring Settings for a Service

FIG. 8 illustrates a user interface that may be presented to a user whenusing the settings management service 402 to select a service andconfigure a setting for the service according to an exemplary embodimentof the invention. The user interface illustrated in FIG. 8 and describedherein may be presented to the user by the settings control panel unit118, by an account management provider 302, and/or by the settingsmanagement unit 130 and may be viewed by the user via the user interface128.

A user may select a service from a plurality of services using the UI.The plurality of services may, for example, be presented as a horizontalnavigation bar. Once the user has selected a service, the settingscontrol panel unit 118 may retrieve the service UI widget for theselected service and present the retrieved service UI widget to the userby sending data to the user device 104 enabling the settings managementunit 130 to render the service UI widget in a display of the userinterface 128. In FIG. 8, the user has selected a data share servicefrom a horizontal navigation bar and setting configurations for the datashare service are illustrated. The user may configure one or moresettings for the service using the UI. Upon configuration of a setting,the settings control panel unit 118 and/or the settings management unit130 may generate a settings data package as previously described suchthat the new setting configuration may be synchronized to the serviceprovider and/or to a user device 104 in accordance with any of theinvention embodiments previously described.

Example settings that may be configured for a data share service asillustrated in FIG. 8 include, for example, a secret password for datauploads, notification preferences for when comments are made to theuser's shared media, notifications for actions taken by the user'scontacts, notifications when new members join the service, and/or thelike. For example, if the user configures a notification setting to sendthe user an email notification when a comment is posted to the user'sshared media, once the setting configuration is synchronized to the datashare service, if a user posts a comment to the user's shared media, thedata share service may send the user a notification email to an emailaddress that the user has configured in an email setting. Other settingsmay control who may see the user's shared media and/or information aboutthe user on the data share service. For example, the user's contacts maybe configured to be shown only to the user, only to the user's contacts,or to all users of the data share service.

Configuring Synchronization and Backup Settings

FIG. 9 illustrates a user interface that may be presented to a user whenusing the settings management service 402 to configure synchronizationand/or backup settings according to an exemplary embodiment of theinvention. The user interface illustrated in FIG. 9 and described hereinmay be presented to the user by the settings control panel unit 118, byan account management provider 302, and/or by the settings managementunit 130 and may be viewed by the user via the user interface 128.

In this regard, a user may register more than one user device 104 to thesettings management service 102, such that setting configurations may besynchronized between multiple user devices 104 associated with the user.The user may then select user devices 104 to which settingconfigurations are to be synchronized (e.g., a Nokia N95, Nokia N81,personal desktop computer, work desktop computer, and/or the like)and/or types of setting configurations to be synchronized to a userdevice 104. Further, a user may categorize various settings (e.g., asbusiness settings, personal settings, work settings, etc) and thenconfigure for each user device 104 associated with the user whatcategory or categories of setting configurations are to by synchronizedto the user device 104. The user may further configure whensynchronizations should be take place (e.g., a specific time,periodically, when the user's user device 104 is engaged in activecommunication with another device over the network 110, at the user'scommand, automatically following configuration of a setting, and/or thelike). The user may also configure a direction of synchronization foreach user device 104 (e.g., synchronize in both directions, onlysynchronize from settings management service 102 to user device 104,only synchronize from the user device 104 to the settings managementservice 102, synchronize from first user device 104 to second userdevice 104, and/or the like). The user may further configure conflictresolution between different setting configurations so that the settingscontrol panel unit 118 and/or settings management unit 130 may handleconflicting setting configuration in accordance with a user definedpolicy (e.g., use most recent, prefer setting configuration set by afirst user device 104 over one set by a second user device 104, prefersetting configuration received from settings management service 102 oversetting configuration in user device 104, and/or the like). Accordingly,a user may configure ‘How, When, and What’ details of synchronizationbetween the settings management service, various service providersand/or user devices 104. The settings control panel unit 118 may thenutilize the synchronization details to handle synchronization of settingconfigurations for the user.

A user may add (e.g., register in association with the user), manage orremove (e.g., unregister) a user device 104 so as to control userdevices 104 for which the user may configure synchronization and/orbackup settings. For example, referring to FIG. 8, the user may selectthe “My Devices” option to add, manage, or remove a registered userdevice 104.

For example, a user may wish to synchronize his calendar and contactdata to all of his user devices 104. Accordingly, in one embodiment,contact information can be synchronized from services registered to thesettings management service 102 to the user's user devices 104.Accordingly, the settings control panel unit 118 may be configured tosynchronize, based at least in part upon the user's configurationsettings, data entered by the user into a contacts service and/orcalendar service, to the user's user devices 104 as specified by theuser's synchronization setting configurations. Thus, assuming a useradds contacts to a list of contacts in a contacts service and wants tosynchronize this information to all his associated user devices 104, butdoes not wish to synchronize any contacts added locally to a user device104 to the contacts service, the user may, for example, configure thefollowing settings:

-   -   Devices—All    -   Content—Contacts    -   Automatic—Synchronize every time I connect my device    -   Conflict resolution—Server wins    -   Direction—Only update Ovi Server to Ovi Device

The settings control panel unit 118 and/or settings management unit 130may further be configured to maintain and provide the user (e.g., uponuser request) with a user interface showing a log of synchronizationsthat have been performed. The log file may comprise information aboutthe time of a synchronization, direction of the synchronization, contentof the synchronization, success of the synchronization, any conflict ofthe synchronization, resolution of a synchronization conflict, and/orany additional available details about the synchronization. The user maybe able to configure settings detailing what information is maintainedin the log file, when synchronizations in the log file may be purged(e.g., how long synchronization logs are maintained), where the log fileshould be stored, and/or the like.

Flow Charts According to Exemplary Embodiments of the Invention

FIGS. 10-15 are flowcharts of a system, method, and computer programproduct according to exemplary embodiments of the invention. It will beunderstood that each block or step of the flowcharts, and combinationsof blocks in the flowcharts, may be implemented by various means, suchas hardware and/or a computer program product comprising one or morecomputer-readable mediums having computer readable program instructionsstored thereon. For example, one or more of the procedures describedherein may be embodied by computer program instructions of a computerprogram product. In this regard, the computer program product(s) whichembody the procedures described herein may be stored by one or morememory devices of a mobile terminal, server, or other computing deviceand executed by a processor in the computing device. In someembodiments, the computer program instructions comprising the computerprogram product(s) which embody the procedures described above may bestored by memory devices of a plurality of computing devices. As will beappreciated, any such computer program product may be loaded onto acomputer or other programmable apparatus to produce a machine, such thatthe instructions of the computer program product which execute on thecomputer or other programmable apparatus create means for implementingthe functions specified in the flowchart block(s) or step(s). Further,the computer program product may comprise one or more computer-readablememories on which the computer program instructions may be stored suchthat the one or more computer-readable memories can direct a computer orother programmable apparatus to function in a particular manner, suchthat the computer program product comprises an article of manufactureincluding instruction means which implement the function specified inthe flowchart block(s) or step(s). The computer program instructions ofone or more computer program products may also be loaded onto a computeror other programmable apparatus to cause a series of operational stepsto be performed on the computer or other programmable apparatus toproduce a computer-implemented process such that the instructions whichexecute on the computer or other programmable apparatus provide stepsfor implementing the functions specified in the flowchart block(s) orstep(s).

Accordingly, blocks or steps of the flowcharts support combinations ofmeans for performing the specified functions, combinations of steps forperforming the specified functions and program instruction means forperforming the specified functions. It will also be understood that oneor more blocks or steps of the flowcharts, and combinations of blocks orsteps in the flowcharts, may be implemented by special purposehardware-based computer systems which perform the specified functions orsteps, or combinations of special purpose hardware and computer programproduct(s).

In this regard, one exemplary method for configuring a setting on a userdevice 104 and synchronizing the setting configuration using a settingsmanagement service 102 according to an exemplary embodiment of thepresent invention is illustrated in FIG. 10. In this regard, FIG. 10illustrates operations that may occur at a user device 104. The methodincludes the settings management unit 130 receiving a user inputindicating a configuration of a setting, such as over a user interfacedisplayed by the user interface 128, and configuring the setting basedat least in part upon the user input, at operation 1000. Operation 1010may comprise the settings management unit 130 generating a settings datapackage comprising the new setting configuration. The settingsmanagement unit 130 may then send the settings data package to thesettings management service 102 so that the setting configuration may besynchronized to another user device 104 and/or to a service, atoperation 1020.

FIG. 11 illustrates an exemplary method for receiving and implementing asynchronized setting configuration according to an exemplary embodimentof the present invention. In this regard, FIG. 11 illustrates operationsthat may occur at a user device 104. The method may include the settingsmanagement unit 130 receiving a settings data package from the settingsmanagement service 102, at operation 1100. Operation 1110 may comprisethe settings management unit 130 determining from information containedin the settings data package, an identity of a service with which thesetting configuration included in the settings data package isassociated. The settings management unit 130 may, in some embodiments,route the settings data package or the setting configuration containedtherein to a service handler entity for the service identified by thesettings data package, at operation 1120. Operation 1130 may comprisethe settings management unit 130 and/or the service handler entityextracting the setting configuration from the settings data package. Itwill be appreciated, however, that the ordering of operations 1120 and1130 may be reversed from the order illustrated in FIG. 11. Operation1140 may then comprise the settings management unit 130 and/or theservice handler entity for the service identified by the settings datapackage implementing the setting configuration on the user device 104.

FIG. 12 illustrates an exemplary method for synchronizing a settingconfiguration according to an exemplary embodiment of the presentinvention. In this regard, FIG. 12 illustrates operations that may occurat a settings management service 102. The method may include thesettings control panel unit 118 and/or synchronization server 120receiving a settings data package generated by a first user device 104,at operation 1200. In this regard, receiving a settings data package maycomprise receiving a settings data package sent by the first user device104 or retrieving a settings data package from the first user device104. Operation 1210 may comprise the settings control panel unit 118determining how to handle synchronization of the setting configurationincluded in the settings data package based at least in part uponinformation included in the settings data package. In this regard, thesettings control panel unit 118 may determine a GUID for the settingconfigured with the setting configuration included in the settings datapackage, a user device 104 to which the setting configuration is to besynchronized, a service address indicating a service to which thesetting configuration is to be synchronized, a last modified timestamp,and/or other information that may be used in determining how to handlesynchronization of the setting configuration included in the settingsdata package. The settings control panel unit 118 may additionally oralternatively determine how to handle synchronization based at least inpart upon user setting configurations defining how the settingsmanagement service 102 is to synchronize setting configurations for theuser, such as shown in FIG. 9. Operation 1220 may then comprise thesettings control panel unit 118 and/or synchronization server 120synchronizing the setting configuration included in the settings datapackage to at least one of a service (e.g., a service provider and/orserver computing device providing the service) or a second user device104 by distributing the settings data package to the at least one of aservice or second user device 104.

FIG. 13 illustrates an exemplary method for synchronizing a settingconfiguration according to an exemplary embodiment of the presentinvention. In this regard, FIG. 13 illustrates operations that may occurat a settings management service 102. The method may include thesettings control panel unit 118 providing a user interface (e.g., acentral UI and/or service UI widget) facilitating a user of a first userdevice 104 to configure one or more settings, at operation 1300.Operation 1310 may comprise the settings control panel unit 118receiving, via the user interface, an indication of a configuration of asetting made by the user. The configuration of the setting comprises asetting configuration. Operation 1320 may comprise the settings controlpanel unit 118 generating a settings data package comprising the settingconfiguration. Operation 1330 may then comprise the settings controlpanel unit 118 and/or synchronization server 120 synchronizing thesetting configuration to at least one of a second user device 104 (e.g.,another user device 104 associated with the user) or a service bydistributing the settings data package to the at least one of a seconduser device 104 or a service.

FIG. 14 illustrates an exemplary method for registering a service to thesettings management service 102 according to an exemplary embodiment ofthe present invention. The method may include the settings control panelunit 118 (e.g., a service registration client 404 implemented and/orcontrolled by the settings control panel unit 118) receiving aregistration request and service settings information from a serviceprovider, at operation 1400. The service registration client 404 mayadditionally receive service authentication information, such as anaccess token, token secret, and/or consumer secret, such as inembodiments wherein the settings management service 102 and/or anaccount management provider enforce a security policy. In suchembodiments wherein a security policy is enforced, operation 1410 maycomprise the service registration client 404 verifying and/orauthenticating the service provider, such as by comparing the receivedauthentication information to verified authentication informationprovided by the account management provider 302. Operation 1420 maycomprise the service registration client 404 adding a new service UIwidget and/or a URL for a service UI widget for the newly registeredservice to the settings management service, such as by storing theservice UI widget and/or URL in a memory, such as the memory 114. If theservice provider does not directly provide the service UI widget or aURL directed thereto, operation 1420 may further comprise the serviceregistration client 404 generating the service UI widget based at leastin part upon service setting information provided by the serviceprovider with the registration request. Operation 1430 may then comprisethe settings control panel unit 118 providing access to the service UIwidget through the central UI of the settings management service 102.

FIG. 15 illustrates an exemplary method for synchronizing aconfiguration setting for a service according to an exemplary embodimentof the invention. The method may include the settings control panel unit118 receiving a selection of a service from a plurality of selectableservices displayed by a central UI, at operation 1500. The selection maybe made by a user of a user device 104 and may be received from the userdevice 104. Operation 1510 may comprise the settings control panel unit118 retrieving the service UI widget for the selected service from amemory, such as the memory 114. The method may further comprise thesettings control panel unit 118 presenting the retrieved service UIwidget to the user of the user device 104, at operation 1520. Operation1530 may comprise the settings control panel unit 118 receivingconfiguration of a setting by the user over the service UI widget.Operation 1540 may comprise the settings control panel unit 118generating a settings data package comprising the new settingconfiguration. The method may then comprise the settings control panelunit 118 and/or synchronization server 120 synchronizing the settingconfiguration to at least one of a service (e.g., the selected service)or a second user device 104 (e.g., another user device 104 associatedwith the user) by distributing the settings data package to the at leastone of a service or a second user device 104.

CONCLUSION

The above described functions may be carried out in many ways. Forexample, any suitable means for carrying out each of the functionsdescribed above may be employed to carry out embodiments of theinvention. In one embodiment, a suitably configured processor mayprovide all or a portion of the elements of the invention. In anotherembodiment, all or a portion of the elements of the invention may beconfigured by and operate under control of a computer program product.The computer program product for performing the methods of embodimentsof the invention includes a computer-readable storage medium, such asthe non-volatile storage medium, and computer-readable program codeportions, such as a series of computer instructions, embodied in thecomputer-readable storage medium.

As such, then, some embodiments of the invention provide severaladvantages to computing devices, computing device users, and serviceproviders. Embodiments of the invention facilitate synchronization ofsetting configurations between services and/or user devices. Thesynchronization performed by embodiments of the invention streamlinesusage of services and/or access to data by users having multiple userdevices used to access services and/or data. Further, embodiments of theinvention enable synchronization of setting configurations betweenmultiple services so that a user only has to configure a setting for oneservice and the setting is then synchronized to other services.Embodiments of the invention further provide for backup of settingconfigurations, as setting configurations for a first user device can besynchronized to another user device of the user or back to the firstuser device, such as if the memory of the first user device iscorrupted.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the embodiments of the invention are not to belimited to the specific embodiments disclosed and that modifications andother embodiments are intended to be included within the scope of theappended claims. Moreover, although the foregoing descriptions and theassociated drawings describe exemplary embodiments in the context ofcertain exemplary combinations of elements and/or functions, it shouldbe appreciated that different combinations of elements and/or functionsmay be provided by alternative embodiments without departing from thescope of the appended claims. In this regard, for example, differentcombinations of elements and/or functions than those explicitlydescribed above are also contemplated as may be set forth in some of theappended claims. Although specific terms are employed herein, they areused in a generic and descriptive sense only and not for purposes oflimitation.

What is claimed is:
 1. A method comprising: providing, by a settingsmanagement service, a user interface to a first user device, wherein theuser interface is associated with a first service and is for configuringa setting configuration of the first service; receiving an indicationthat a user of the first user device has made a new settingconfiguration of the first service via the user interface; generating,by the settings management service, a settings data package comprisingthe new setting configuration; and synchronizing the settings datapackage between the first service and at least one of a second serviceor a second user device by sending the settings data package from thesettings management service to the second service, the second userdevice, or a combination thereof.
 2. The method of claim 1, wherein theuser interface is a central user interface, a user interface widget, ora combination thereof.
 3. The method of claim 1, further comprising:receiving, by the settings management service, a registration requestand service settings information from a service provider of the firstservice, wherein the user interface associated with the first service isadded to the settings management service based on the registrationrequest and the service settings information.
 4. The method of claim 3,further comprising: authenticating or validating the service provider inresponse to the registration request, wherein the adding of the userinterface associated with the first service to the settings managementservice is based on the authenticating or the validating of the serviceprovider.
 5. The method of claim 3, further comprising: providing accessto the user interface associated with the first service via an centraluser interface of the settings management service.
 6. The method ofclaim 1, further comprising: receiving, via a central user interface ofthe settings management service, a selection of the first service fromamong a plurality of selectable services displayed in the central userinterface, wherein the selection is made by the user of the firstdevice; and wherein the user interface associated with the first serviceis provided to the first user device based on the selection.
 7. Themethod of claim 6, wherein the user interface is provided to the firstuser device as a user interface widget.
 8. The method of claim 7,wherein the user interface widget is provided to the first device byproviding access to the central user interface for the first device toretrieve the user interface widget from the central user interface. 9.An apparatus comprising: at least one processor; and at least one memoryincluding computer program code for one or more programs, the at leastone memory and the computer program code configured to, with the atleast one processor, cause the apparatus to perform at least thefollowing, provide, by a settings management service, a user interfaceto a first user device, wherein the user interface is associated with afirst service and is for configuring a setting configuration of thefirst service; receive an indication that a user of the first userdevice has made a new setting configuration of the first service via theuser interface; generate, by the settings management service, a settingsdata package comprising the new setting configuration; and synchronizethe settings data package between the first service and at least one ofa second service or a second user device by sending the settings datapackage from the settings management service to the second service, thesecond user device, or a combination thereof.
 10. The apparatus of claim9, wherein the apparatus is further caused to: receive, by the settingsmanagement service, a registration request and service settingsinformation from a service provider of the first service, wherein theuser interface associated with the first service is added to thesettings management service based on the registration request and theservice settings information.
 11. The apparatus of claim 10, wherein theapparatus is further caused to: authenticate or validate the serviceprovider in response to the registration request, wherein the adding ofthe user interface associated with the first service to the settingsmanagement service is based on the authenticating or the validating ofthe service provider.
 12. The apparatus of claim 10, wherein theapparatus is further caused to: provide access to the user interfaceassociated with the first service via an central user interface of thesettings management service.
 13. The apparatus of claim 9, wherein theapparatus is further caused to: receive, via a central user interface ofthe settings management service, a selection of the first service fromamong a plurality of selectable services displayed in the central userinterface, wherein the selection is made by the user of the firstdevice; and wherein the user interface associated with the first serviceis provided to the first user device based on the selection.
 14. Theapparatus of claim 13, wherein the user interface is provided to thefirst user device as a user interface widget.
 15. The apparatus of claim14, wherein the user interface widget is provided to the first device byproviding access to the central user interface for the first device toretrieve the user interface widget from the central user interface. 16.A non-transitory computer-readable storage medium carrying one or moresequences of one or more instructions which, when executed by one ormore processors, cause an apparatus to perform: providing, by a settingsmanagement service, a user interface to a first user device, wherein theuser interface is associated with a first service and is for configuringa setting configuration of the first service; receiving an indicationthat a user of the first user device has made a new settingconfiguration of the first service via the user interface; generating,by the settings management service, a settings data package comprisingthe new setting configuration; and synchronizing the settings datapackage between the first service and at least one of a second serviceor a second user device by sending the settings data package from thesettings management service to the second service, the second userdevice, or a combination thereof.
 17. The non-transitorycomputer-readable storage medium of claim 16, wherein the apparatus isfurther caused to perform: receiving, by the settings managementservice, a registration request and service settings information from aservice provider of the first service, wherein the user interfaceassociated with the first service is added to the settings managementservice based on the registration request and the service settingsinformation.
 18. The non-transitory computer-readable storage medium ofclaim 17, wherein the apparatus is further caused to perform:authenticating or validating the service provider in response to theregistration request, wherein the adding of the user interfaceassociated with the first service to the settings management service isbased on the authenticating or the validating of the service provider.19. The non-transitory computer-readable storage medium of claim 17,wherein the apparatus is further caused to perform: providing access tothe user interface associated with the first service via an central userinterface of the settings management service.
 20. The non-transitorycomputer-readable storage medium of claim 16, wherein the apparatus isfurther caused to perform: receiving, via a central user interface ofthe settings management service, a selection of the first service fromamong a plurality of selectable services displayed in the central userinterface, wherein the selection is made by the user of the firstdevice; and wherein the user interface associated with the first serviceis provided to the first user device based on the selection.